package eva.savant.business.ventas.view

import eva.savant.businessobject.cg.Cuenta
import eva.savant.businessobject.gl.Persona
import eva.savant.businessobject.gl.Tipo
import eva.savant.businessobject.cg.Credito
import eva.savant.core.view.Maestro

import javax.faces.bean.ManagedBean
import javax.faces.bean.SessionScoped
import javax.annotation.PostConstruct
import javax.faces.convert.Converter

@SessionScoped
@ManagedBean(name = 'IMCredito')
public class IMCredito extends Maestro {

  def lsTipo

  @PostConstruct
  public void cleanEntity() {

    entity= new Credito(); init()

    entity.cuenta= new Cuenta()

    entity.persona= new Persona()

    entity.condpago =  new Tipo()

    lsTipo= find(Tipo.class,'clase.id=?',sociedad.id + 'CP')
  }

  public boolean mergeEntity(Object entity) { entity= (Credito) entity

    if(entity.cuenta.id == null) throw new Exception('Cuenta contable invalido')

    if(entity.id == null) entity.disponible= entity.autorizado

    return merge(entity) != null
  }

  public List completeCuenta(String value) { return completeLike(Cuenta,'tipo= 0 and nombre',value) }

  public Converter getConverterCuenta() { return converterLike(Cuenta) }

  public List complete(String value) { return completeLike(Persona,'nombre',value) }

  public Converter getConverter() { return converterLike(Persona) }

}
